package sort;

/**
 *
 * 冒泡排序：从一端开始比较相邻2个元素，比较完把较大值或较小值移动到固定一侧，
 * 最好时间复杂度 O(N)
 * 时间复杂度：O(n^2)
 * 稳定排序
 * 数据敏感性：约有序效率越高
 *
 *
 * 实现：
 * 两层for循环
 * 第一层：排序的躺数量
 * 第二层：相邻元素的交换
 *
 */

public class BubbingSort {

    //升序
    public static  void asc(int arr[]){
        int n = arr.length;
        for(int i=0; i<n-1; i++){
            boolean flag = false;
            for(int j=0; j< n-1-i; j++){
                if(arr[j] > arr[j+1]){
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                    flag = true;
                }
            }
            if(!flag){
                break;
            }
        }
    }

    public static void main(String[] args) {
        int arr[] = { 3,5,1,10,6};
        asc(arr);
        for (int i : arr) {
            System.out.printf("%d ", i);
        }
    }
}
